The present invention relates to multi-core processors and, more specifically, to a semaphore that can be used in a multi-core processor.
In multi-core systems, a semaphore is a device used to control access by multiple processes to a shared resource in a parallel-programming or multi-user environment. For example, in some conventional multi-core processors, a core has to poll the semaphore before it can access a shared resource. If the shared resource is occupied by another core, then the polling operation is repeated until the shared resource is released. If the number of cores is relatively large, then a relatively high percentage of the system's bus capacity could disadvantageously be wasted on such repeated polling operations. Accordingly, it is an object of the present invention to provide a semaphore for a multi-core system that improves bus usage.